Python è un linguaggio di programmazione di alto livello per scopi generali, comunemente utilizzato in applicazioni di grandi dimensioni per automatizzare alcune attività creando script o macro.
In FreeCAD, il codice Python può essere utilizzato per creare vari elementi in modo programmatico, senza la necessità di fare clic sull'interfaccia utente grafica. Inoltre, molti strumenti e ambienti di lavoro di FreeCAD sono programmati in Python.
Vedere Introduzione a Python per conoscere il linguaggio di programmazione Python, quindi Guida agli Script Python e Script di base per FreeCAD per iniziare a creare script in FreeCAD .
La leggibilità del codice Python è uno degli aspetti più importanti di questo linguaggio. L'uso di uno stile chiaro e coerente all'interno della comunità Python facilita i contributi da parte di diversi sviluppatori, poiché i programmatori Python più esperti si aspettano che il codice sia formattato in un certo modo e segua determinate regole. Quando si scrive codice Python, è consigliabile seguire PEP8: Style Guide for Python Code e PEP257: Docstring Conventions.
Questi documenti presentano le spiegazioni in modo più intuitivo:
In questa documentazione dovrebbero essere seguite alcune convenzioni per gli esempi Python.
Questa è una tipica firma di funzione
Wire = make_wire(pointslist, closed=False, placement=None, face=None, support=None)
Wire = make_wire(pointslist, False, None, None, None)
Wire = make_wire(pointslist, False, None, None)
Wire = make_wire(pointslist, False, None)
Wire = make_wire(pointslist, False)
Wire = make_wire(pointslist)
Wire = make_wire(pointslist, closed=False, placement=None, face=None)
Wire = make_wire(pointslist, closed=False, face=None, placement=None)
Wire = make_wire(pointslist, placement=None, closed=False, face=None)
Wire = make_wire(pointslist, support=None, closed=False, placement=None, face=None)
p1 = Vector(0, 0, 0)
p2 = Vector(1, 1, 0)
p3 = Vector(2, 0, 0)
Wire = make_wire([p1, p2, p3], closed=True)
a_list = [1, 2, 3,
2, 4, 5]
Wire = make_wire(pointslist,
False, None,
None, None)
Wire = make_wire(pointslist, closed=True, face=True)
Window = make_window(Wire, name="Big window")
Le funzioni Python sono archiviate in file chiamati moduli. Prima di utilizzare qualsiasi funzione in quel modulo, il modulo deve essere incluso nel documento con l'istruzione import
.
Questo crea funzioni con prefisso, ovvero module.function()
. Questo sistema previene conflitti di nome con funzioni che hanno lo stesso nome ma che provengono da moduli diversi.
Ad esempio, le due funzioni Arch.make_window()
e myModule.make_window()
possono coesistere senza problemi.
Gli esempi completi dovrebbero includere le importazioni necessarie e le funzioni prefissate.
import FreeCAD as App
import Draft
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1, 1, 0)
p3 = App.Vector(2, 0, 0)
Wire = Draft.make_wire([p1, p2, p3], closed=True)
import FreeCAD as App
import Draft
import Arch
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1, 0, 0)
p3 = App.Vector(1, 1, 0)
p4 = App.Vector(0, 2, 0)
pointslist = [p1, p2, p3, p4]
Wire = Draft.make_wire(pointslist, closed=True, face=True)
Structure = Arch.make_structure(Wire, name="Big pillar")